// console.log(global);
// console.log(__filename);
// console.log(__dirname);
// // 默认情况 this 是空对象，和 global 并不是一样的
// console.log(this, this === global);

// (function () {
//   console.log(this === global);
// })();
// console.log(require);
// console.log(module, exports);

// process
// 1. 资源 cpu 内存
/*
  {
    rss: 167694336,   // 常驻内存
    heapTotal: 134504448, // 申请的内存大小
    heapUsed: 113534656,  // 当前使用的内存大小
    external: 5067258,    // 扩张的内存大小（底层C，C++内存大小）
    arrayBuffers: 2358463 // 缓冲区大小，独立内存大小，不占据v8大小
  }
*/
// console.log(process.memoryUsage());
/*
  { 
    user: 2562000,  // 用户执行占据cpu内存时间片段
    system: 265000  // 系统执行占据cpu内存时间片段
  }
*/
// console.log(process.cpuUsage());

// 运行环境
// console.log(process.cwd()); // 运行目录（当前工作目录是）
// console.log(process.version); // node 版本
// console.log(process.versions);  // 输出当前 Node.js 及其依赖库的版本信息
// console.log(process.arch); // 输出当前系统的 CPU 架构 x64
// console.log(process.env.NODE_ENV); // 用户环境
// console.log(process.env.PATH); // 系统环境变量
// console.log(process.env.USERPROFILE); // 当前系统用户
// console.log(process.platform); // 系统平台

// 运行状态

/* [
  'C:\\Program Files\\nodejs\\node.exe',  // 启动 Node.js 进程的可执行文件路径
  'E:\\font-code\\08.Node\\lagou\\01_node-basic\\03_全局对象.ts', // 启动 Node.js 进程的脚本文件路径
  '--some-option',  // 启动 Node.js 进程的命令行参数
  'some-value'      // 启动 Node.js 进程的命令行参数
] */
// console.log(process.argv); // 输出启动 Node.js 进程时的命令行参数
// console.log(process.argv0); // 获取启动参数第一个值
// console.log(process.pid); // 当前任务的pid
// console.log(process.uptime()); // 当前任务运行的时间

// 事件监听（可以直接发布定义一些事件）
// process.on("exit", (code) => {
//   // 只能执行同步代码
//   // setTimeout(() => {
//   //   console.log(123);
//   // }, 100);
//   console.log("exit" + code);
// });
// process.on("beforeExit", (code) => {
//   // 可以写异步代码
//   console.log("before exit" + code);
//   setTimeout(() => {
//     console.log(123);
//   }, 100);
// });
// console.log("代码执行完了");

// process.exit()   // 主动退出

// 标准输出
// console.log = function (data) {
//   process.stdout.write("---" + data + "\r\n");
// };
// console.log("first");

// const fs = require("fs");
// fs.createReadStream("text.txt").pipe(process.stdout);

// process.stdin.pipe(process.stdout);

process.stdin.setEncoding("utf-8");
process.stdin.on("readable", () => {
  let chunk = process.stdin.read();
  if (chunk !== null) {
    process.stdout.write("data " + chunk);
  }
});
